﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using Host.Encriptacion.logica;

namespace Host.Encriptacion
{
    class Desencriptador
    {
        public Desencriptador()
        { }

        public string clave { get; set; }
        public string texto { get; set; }

        public string Desencripta(BitArray textoEncriptado, string clave)
        {
            BitArray[] textoEncriptado_64bits = Dividir.dividir(textoEncriptado, textoEncriptado.Length / 64);
            IO.ImprimePasos("Se divide el texto de largo " + textoEncriptado.Length + " en " + textoEncriptado.Length / 64 + " trozo(s) de 64 bits");
            /*
            for(int i = 0; i < textoEncriptado_64bits.Length; i++)
                Console.WriteLine(IO.BitArrayToString(textoEncriptado_64bits[i], 64));
            */

            BitArray[] textoDesencriptado_64bits = AlgoritmoCFB.CFB_Desencriptar(textoEncriptado_64bits, clave);

            for (int i = 0; i < textoDesencriptado_64bits.Length; i++)
                {
                    texto = texto + TransformarABinario.ToByteArray(textoDesencriptado_64bits[i]);
                }
            
            return texto;
        }
    }
}
